package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelo.Categoria;
import modelo.Conexion;
import vista.VCategoria;;

public class CCategoria implements ActionListener{
	public VCategoria vCategoria;
	public Categoria categoria;
	public Conexion BD;

	public CCategoria(VCategoria vcat) {
		vCategoria=vcat;
		try {
			BD=new Conexion();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

		
		public void actionPerformed(ActionEvent ae){
			if(ae.getSource()== vCategoria.getBtnRegistrar()){
				if(validarCampos()){
				categoria = new Categoria(vCategoria.getTxtCodCategoria().getText(),vCategoria.getTxtDescripcion().getText());
					BD.insertarCategoria(categoria);
			
				JOptionPane.showMessageDialog(new JFrame(), 
						"La categoria se ha registrado exitosamente","Categoria", 
						JOptionPane.INFORMATION_MESSAGE);
				inicio();
				}
				else
					JOptionPane.showMessageDialog(new JFrame(), 
							"Debe llenar todos los campos vacios","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
			
		}
			if(ae.getSource()== vCategoria.getBtnBuscar()){
				String codcategoria=vCategoria.getTxtCodCategoria().getText();
				if(codcategoria.equals(""))
					JOptionPane.showMessageDialog(new JFrame(), 
							"Por favor introduzca el codigo de la categoria","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
				else{
				Categoria categoria = null;
					categoria = BD.consultarCategoria(codcategoria);
				
				if(categoria==null){
					JOptionPane.showMessageDialog(new JFrame(), 
							"La categoria no se encuntra registrada","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
					noEncontrado();
				}
				else
				{
					vCategoria.getTxtDescripcion().setText(categoria.getDescripcion());
					encontrado();
				}
				}
		}
			if(ae.getSource()== vCategoria.getBtnModificar()){
				if(validarCampos()){
				categoria=new Categoria(vCategoria.getTxtCodCategoria().getText(),vCategoria.getTxtDescripcion().getText());
				BD.modificarCategoria(vCategoria.getTxtCodCategoria().getText(),categoria);
				JOptionPane.showMessageDialog(new JFrame(), 
						"La Categoria ha sido modificada exitosamente","Categoria", 
						JOptionPane.INFORMATION_MESSAGE);
				inicio();
				}
				else
					JOptionPane.showMessageDialog(new JFrame(), 
							"Debe llenar todos los campos vacios","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
				
			}
			if(ae.getSource()== vCategoria.getBtnLimpiar()){
				limpiarCampos();
			}
		}
		public boolean validarCampos(){
			boolean validar=true;
			if(vCategoria.getTxtCodCategoria().getText().equals("") || vCategoria.getTxtDescripcion().getText().equals(""))
				validar=false;
			return validar;
		}
		public void limpiarCampos(){
			vCategoria.getTxtCodCategoria().setText("");
			vCategoria.getTxtDescripcion().setText("");
			vCategoria.getTxtCodCategoria().setEditable(true);
			vCategoria.getTxtDescripcion().setEditable(false);
			vCategoria.getTxtCodCategoria().requestFocus(true);
		}
		public void encontrado(){
			vCategoria.getTxtDescripcion().setEditable(true);
			vCategoria.getBtnModificar().setEnabled(true);	
		}
		public void noEncontrado(){
			vCategoria.getBtnRegistrar().setEnabled(true);
			vCategoria.getTxtDescripcion().setEditable(true);
			vCategoria.getBtnLimpiar().setEnabled(true);
			vCategoria.getTxtCodCategoria().setEditable(false);
		}
		public void inicio(){
			vCategoria.getBtnModificar().setEnabled(false);
			vCategoria.getBtnRegistrar().setEnabled(false);
			vCategoria.getBtnLimpiar().setEnabled(false);
		    limpiarCampos();
			
		}
}
